import { IPSModelObject } from '../ipsmodel-object';
import { IPSBIAggTableObject } from './ipsbiagg-table-object';
import { IPSDEField } from '../dataentity/defield/ipsdefield';

/**
 *
 * @export
 * @interface IPSBIAggColumn
 */
export interface IPSBIAggColumn extends IPSBIAggTableObject, IPSModelObject {
  /**
   * 代码标识
   * @type {string}
   */
  codeName: string;

  /**
   * 聚合数据列标记
   * @type {string}
   */
  columnTag: string;

  /**
   * 聚合数据列标记2
   * @type {string}
   */
  columnTag2: string;

  /**
   * 聚合数据类型
   * @description 值模式 [聚合列类型] {MEASURE：指标、 DIMENSION：维度、 USER：用户自定义 }
   * @type {( string | 'MEASURE' | 'DIMENSION' | 'USER')}
   */
  columnType: string | 'MEASURE' | 'DIMENSION' | 'USER';

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  getPSDEField(): IPSDEField | null;

  /**
   * 实体属性
   *
   * @type {IPSDEField}
   */
  get psDEField(): IPSDEField | null;

  /**
   * 实体属性（必须存在）
   *
   * @type {IPSDEField}
   */
  getPSDEFieldMust(): IPSDEField;
}
